package com.hoyue.classroom.service;

import com.hoyue.classroom.bean.Course;
import com.hoyue.classroom.bean.UserCourse;

import java.util.List;
import java.util.Map;

/**
 * @author 空白
 * @version 1.1
 * Create by 2019/08/17 00:39
 */
public interface CourseService {
    /**
     * 查询此用户所有课程
     * @param id 用户id
     * @return
     * @throws Exception
     */
    List<Course> ListCourse(Integer id);

    /**
     * 根据课程id查询课程内容
     * @param id 课程id
     * @return
     * @throws Exception
     */
    Course getCourse(Integer id);

    Map<String,String> getCourseStr(Course course);

    /**
     * 用户添加课程
     * @param name
     * @param describe
     * @param startTime
     * @param endTime
     * @param userId
     * @param userName
     * @return
     * @throws Exception
     */
    int insertCourse(String name, String describe, String startTime, String endTime, Integer userId, String userName);

    /**
     * 用户绑定课程
     * @param userCourse
     * @return
     * @throws Exception
     */
    int addCourse(UserCourse userCourse);

    /**
     * 更改课程信息
     * @param id
     * @param name
     * @param describe
     * @param startTime
     * @param endTime
     * @return
     */
    int updateCourse(Integer id, String name, String describe, String startTime, String endTime);

    /**
     * 根据id删除课程
     * @param courseId 课程id
     * @return
     * @throws Exception
     */
    int delCourse(int courseId);

    /**
     * 教师根据课程id将学生移出课程、学生根据用户id退出课程
     * @param userId 当前用户id
     * @param courseId 课程id
     * @return
     */
    int outCourse(int userId, int courseId);

    /**
     * 查询所有课程
     * @param course
     * @return
     */
    List<Course> selectCourses(Course course);
    
    
    /**
     * @author zhouyong
     * 当学生加入该课程之后的时候，考勤表添加学生的相关信息
     */
    int addAttence(Integer studentid);
}

